package com.ruoyi.system.service;

import java.util.List;
import com.ruoyi.system.domain.SysAuthorization;

/**
 * 系统授权Service接口
 * 
 * @author ruoyi
 * @date 2025-10-15
 */
public interface ISysAuthorizationService 
{
    /**
     * 查询系统授权
     * 
     * @param authId 系统授权主键
     * @return 系统授权
     */
    public SysAuthorization selectSysAuthorizationByAuthId(Long authId);

    /**
     * 根据授权码查询系统授权
     * 
     * @param authCode 授权码
     * @return 系统授权
     */
    public SysAuthorization selectSysAuthorizationByAuthCode(String authCode);

    /**
     * 查询系统授权列表
     * 
     * @param sysAuthorization 系统授权
     * @return 系统授权集合
     */
    public List<SysAuthorization> selectSysAuthorizationList(SysAuthorization sysAuthorization);

    /**
     * 验证授权码是否有效
     * 
     * @param authCode 授权码
     * @return 验证结果
     */
    public boolean validateAuthorizationCode(String authCode);

    /**
     * 检查系统是否已授权
     * 
     * @return 是否已授权
     */
    public boolean isSystemAuthorized();

    /**
     * 获取当前有效的授权信息
     * 
     * @return 授权信息
     */
    public SysAuthorization getCurrentValidAuthorization();

    /**
     * 新增系统授权
     * 
     * @param sysAuthorization 系统授权
     * @return 结果
     */
    public int insertSysAuthorization(SysAuthorization sysAuthorization);

    /**
     * 修改系统授权
     * 
     * @param sysAuthorization 系统授权
     * @return 结果
     */
    public int updateSysAuthorization(SysAuthorization sysAuthorization);

    /**
     * 批量删除系统授权
     * 
     * @param authIds 需要删除的系统授权主键集合
     * @return 结果
     */
    public int deleteSysAuthorizationByAuthIds(Long[] authIds);

    /**
     * 删除系统授权信息
     * 
     * @param authId 系统授权主键
     * @return 结果
     */
    public int deleteSysAuthorizationByAuthId(Long authId);
}
